package org.scau.studentevaluation.service;

import org.scau.studentevaluation.consts.StudentConst;
import org.scau.studentevaluation.entity.query.StudentQuery;
import org.scau.studentevaluation.entity.vo.CheckTableVO;
import org.scau.studentevaluation.entity.vo.StudentVO;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;

import javax.validation.Valid;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import java.util.List;

/**
 * @ClassName: StudentService
 * @Description: TODO 入参校验交给service接口，不要在impl再写一次，写的和这个不一样会报错
 * @Author: sunslikes
 * @Date: 2020/8/27 18:28
 * @Version: 1.0
 */
@Validated
public interface StudentService {
    /**
     * 获取学生信息(新增)
     *  * 	入参为college
     *  * 	通过college从student表中获取数据
     *  * 	select * from student where college =#{college}
     * @param college
     * @return
     */
    List<StudentVO> listStudentsByCollege(@NotBlank(message = "不能为空") String college);

    /**
     * 方法：获取学生学年列表
     * 利用学生的学号获取入学年份
     * 当前年份和入学年份获得一个学年列表
     * @param studentId
     * @return 学生学年列表
     */
    List<Integer> listStudentYears(@Pattern(regexp = StudentConst.STUDENT_ID_PATTERN, message = "学号错误") String studentId);


    /**
     * 获取综测评分表
     * @param studentQuery 学生
     * @param activityYear 学年
     * @return 综测项目表
     */
    CheckTableVO getRewardTable(@Valid StudentQuery studentQuery, @Min(value = 2000) int activityYear);


}
